<!-- 异常捕获
    try{
        可能出错的代码

    }
    catch{
        出错则执行

    }
    finally{
        不论有无错误都执行
    }

-->





<!-- 手动抛出异常
    js中：
        throw   手动抛出异常


    python中：
        raise   手动抛出异常
 -->









<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>异常捕获</title>
</head>

<body>
    <script>
        // // 普通异常
        // try {
        //     console.log(10 / 5);
        //     console.log(10 / abcd);
        // }
        // catch {
        //     console.log("出错后执行");
        // }
        // finally {
        //     console.log("出不出错都会执行");
        // }





        // // 手动抛出异常
        // try {
        //     console.log(10 / 5);
        //     throw "手动异常"
        // }
        // catch {
        //     console.log("出错后执行");
        // }
        // finally {
        //     console.log("出不出错都会执行");
        // }





        // // 手动抛出异常的内容  作为参数传入catch
        // try {
        //     console.log(10 / 5);
        //     throw "手动异常"
        // }
        // catch(error){
        //     console.log("出错后执行", error);       // 打印结果为  出错后执行   手动异常
        // }
        // finally {
        //     console.log("出不出错都会执行");
        // }








        // 捕获特定异常
        try {
            // 尝试解析一个无效的 JSON 字符串
            let data = JSON.parse('{invalid json');
            console.log(data);
        } catch (error) {
            if (error instanceof SyntaxError) {
                console.log('捕获到语法错误:', error.message);
            } else {
                console.log('捕获到其他类型的错误:', error.message);
            }
        }


    </script>
</body>

</html>